home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 11 / CU Amiga Magazine's Super CD-ROM 11 (1997)(EMAP Images)(GB)(Track 1 of 3)[!][issue 1997-06].iso / propage / data / psprlg < prev   
Text File  |  1993-01-29  |  19KB  |  792 lines

  1.  
  2. %===========================================================%
  3. %  Gold Disk PostScript Prologue file  V4.0, Nov 26, '92    %
  4. %===========================================================%
  5.  
  6. /uniqueid 0 def
  7.  
  8. /amigavec [
  9. 8#055 /hyphen
  10. 8#200 /.notdef
  11. 8#201 /ellipsis
  12. 8#202 /fi
  13. 8#203 /fl
  14. 8#204 /daggerdbl
  15. 8#205 /perthousand
  16. 8#206 /florin
  17. 8#207 /fraction
  18. 8#210 /lslash
  19. 8#211 /Lslash
  20. 8#212 /quotesinglbase
  21. 8#213 /quotedblbase
  22. 8#214 /scaron
  23. 8#215 /zcaron
  24. 8#216 /.notdef %%-------- RESERVED FOR EXPANSION -------
  25. 8#217 /Zcaron
  26. 8#220 /dotlessi
  27. 8#221 /grave
  28. 8#222 /acute
  29. 8#223 /circumflex
  30. 8#224 /tilde
  31. 8#225 /macron
  32. 8#226 /breve
  33. 8#227 /dotaccent
  34. 8#230 /Scaron
  35. 8#231 /.notdef
  36. 8#232 /ring
  37. 8#233 /cedilla
  38. 8#234 /periodcentered
  39. 8#235 /hungarumlaut
  40. 8#236 /ogonek
  41. 8#237 /caron
  42. 8#240 /.notdef
  43. 8#241 /exclamdown
  44. 8#242 /cent
  45. 8#243 /sterling
  46. 8#244 /currency
  47. 8#245 /yen
  48. 8#246 /bar
  49. 8#247 /section
  50. 8#250 /dieresis
  51. 8#251 /copyright
  52. 8#252 /ordfeminine
  53. 8#253 /guillemotleft
  54. 8#254 /logicalnot
  55. 8#255 /endash
  56. 8#256 /registered
  57. 8#257 /macron
  58. 8#260 /degree
  59. 8#261 /plusminus
  60. 8#262 /quotedblright
  61. 8#263 /dagger
  62. 8#264 /quotesingle
  63. 8#265 /mu
  64. 8#266 /paragraph
  65. 8#267 /bullet
  66. 8#270 /emdash
  67. 8#271 /quotedblleft
  68. 8#272 /ordmasculine
  69. 8#273 /guillemotright
  70. 8#274 /onequarter
  71. 8#275 /onehalf
  72. 8#276 /threequarters
  73. 8#277 /questiondown
  74. 8#300 /Agrave
  75. 8#301 /Aacute
  76. 8#302 /Acircumflex
  77. 8#303 /Atilde
  78. 8#304 /Adieresis
  79. 8#305 /Aring
  80. 8#306 /AE
  81. 8#307 /Ccedilla
  82. 8#310 /Egrave
  83. 8#311 /Eacute
  84. 8#312 /Ecircumflex
  85. 8#313 /Edieresis
  86. 8#314 /Igrave
  87. 8#315 /Iacute
  88. 8#316 /Icircumflex
  89. 8#317 /Idieresis
  90. 8#320 /Eth
  91. 8#321 /Ntilde
  92. 8#322 /Ograve
  93. 8#323 /Oacute
  94. 8#324 /Ocircumflex
  95. 8#325 /Otilde
  96. 8#326 /Odieresis
  97. 8#327 /multiply
  98. 8#330 /Oslash
  99. 8#331 /Ugrave
  100. 8#332 /Uacute
  101. 8#333 /Ucircumflex
  102. 8#334 /Udieresis
  103. 8#335 /Yacute
  104. 8#336 /Thorn
  105. 8#337 /germandbls
  106. 8#340 /agrave
  107. 8#341 /aacute
  108. 8#342 /acircumflex
  109. 8#343 /atilde
  110. 8#344 /adieresis
  111. 8#345 /aring
  112. 8#346 /ae
  113. 8#347 /ccedilla
  114. 8#350 /egrave
  115. 8#351 /eacute
  116. 8#352 /ecircumflex
  117. 8#353 /edieresis
  118. 8#354 /igrave
  119. 8#355 /iacute
  120. 8#356 /icircumflex
  121. 8#357 /idieresis
  122. 8#360 /eth
  123. 8#361 /ntilde
  124. 8#362 /ograve
  125. 8#363 /oacute
  126. 8#364 /ocircumflex
  127. 8#365 /otilde
  128. 8#366 /odieresis
  129. 8#367 /divide
  130. 8#370 /oslash
  131. 8#371 /ugrave
  132. 8#372 /uacute
  133. 8#373 /ucircumflex
  134. 8#374 /udieresis
  135. 8#375 /yacute
  136. 8#376 /thorn
  137. 8#377 /ydieresis
  138. ] def
  139.  
  140. isepsf
  141.    {/bdef {bind def} bind def}
  142.    {/bdef {def} bind def}
  143.    ifelse
  144. /ldef {load def} bdef
  145. /n /newpath ldef
  146. /m2 /moveto ldef
  147. /l2 /lineto ldef
  148. /c2 /curveto ldef
  149. /rm /rmoveto ldef
  150. /rl /rlineto ldef
  151. /gs /gsave ldef
  152. /gr /grestore ldef
  153. /g /setgray ldef
  154. /s /stroke ldef
  155.  
  156. /mvx {
  157.    currentpoint exch pop m2
  158. } bdef
  159. /mvy {
  160.    currentpoint pop exch m2
  161. } bdef
  162. /ln { % x y ln matrix
  163.    matrix currentmatrix 3 1 roll translate 0 0 m2
  164. }bdef
  165. /ln2 {
  166.    setmatrix
  167. } bdef
  168. /wrd { % x (s) wrd -
  169.    show mvx
  170. } bdef
  171.  
  172. /concatprocs {
  173.    3 dict begin
  174.    /proc2 exch cvlit def
  175.    /proc1 exch cvlit def
  176.    /newproc proc1 length proc2 length add array def
  177.    newproc 0 proc1 putinterval
  178.    newproc proc1 length proc2 putinterval
  179.    newproc cvx
  180.    end
  181. } bdef
  182.  
  183. /dontCopyID false def
  184. /copyfont {
  185.    { exch dup /FID ne
  186.       {
  187.          dup /UniqueID eq dontCopyID and
  188.          {pop pop}
  189.          {
  190.             dup /Encoding eq
  191.             { exch dup length array copy outfontdict 3 1 roll put}
  192.             { exch outfontdict 3 1 roll put}
  193.             ifelse
  194.          }
  195.          ifelse
  196.       }
  197.       { pop pop}
  198.       ifelse
  199.    } forall
  200. } bdef
  201.  
  202. /recode {
  203.    copyfont dup dup
  204.    outfontdict /FontName 3 -1 roll put
  205.    amigavec aload pop
  206.    amigavec length 2 idiv
  207.    {outfontdict /Encoding get 3 1 roll put} repeat
  208. } bdef
  209.  
  210. /defamigafont {
  211.    /fntsclmtx [0 0 0 0 0 0] def
  212.    exch
  213.    dup fntsclmtx exch 0 exch put
  214.    neg fntsclmtx exch 3 exch put
  215.    findfont fntsclmtx makefont setfont
  216. } bdef
  217.  
  218. /deffont  {
  219.    3 -1 roll
  220.    {
  221.       dup dup length dup 5 add string /newnamestr exch def
  222.       exch newnamestr copy pop newnamestr exch (Amiga) putinterval
  223.       newnamestr cvn dup FontDirectory exch known
  224.       {exch pop}
  225.       {
  226.          exch cvn findfont
  227.          dup maxlength 2 add dict /outfontdict exch def
  228.          /dontCopyID false def recode
  229.          outfontdict definefont pop
  230.       }
  231.       ifelse
  232.    }
  233.    { cvn }
  234.    ifelse
  235.    defamigafont
  236. } bdef
  237.  
  238. /MakeOutline {
  239.    3 -1 roll
  240.    {/xtra 8 def /suffix (OutAmiga) def}
  241.    {/xtra 3 def /suffix (Out) def}
  242.    ifelse
  243.    dup dup length dup xtra add string /newnamestr exch def
  244.    exch newnamestr copy pop newnamestr exch suffix putinterval
  245.    newnamestr cvn dup FontDirectory exch known
  246.    {exch pop}
  247.    {
  248.       exch cvn findfont
  249.       dup dup maxlength
  250.       exch /UniqueID known not {1 add} if
  251.       dict /outfontdict exch def
  252.       /dontCopyID true def
  253.       xtra 8 eq {recode}{copyfont dup} ifelse
  254. %      outfontdict /UniqueID uniqueid put
  255. %      /uniqueid uniqueid 1 add def
  256.       outfontdict /PaintType 2 put
  257.       outfontdict /StrokeWidth 1000 36 div put
  258.       outfontdict definefont pop
  259.    } ifelse
  260.    defamigafont
  261. } bdef
  262.  
  263. /rect 4 array def  % used in dobox
  264. /dorect {
  265.    n
  266.    rect aload pop 4 copy m2 3 1 roll exch l2
  267.    4 2  roll l2 l2
  268.    closepath
  269. } bdef
  270.  
  271. /dobox {              %clip trnsp x1 y1 x2 y2 dobox
  272.    rect astore pop
  273.    {} {dorect 1 g fill} ifelse
  274.    {dorect clip} if
  275. } bdef
  276.  
  277. /dogreyimage {   % width height xscl yscl x0 y0 dogreyimage
  278.    5 index 1 add 2 idiv string
  279.    /picstr exch def
  280.    translate scale
  281.    4 [1 0 0 1 0 0]
  282.    {currentfile  picstr readhexstring pop }
  283.    image
  284. } bdef
  285.  
  286. /do8greyimage {   % width height xscl yscl x0 y0 do8greyimage
  287.                   % same as above, but 8 bits per sample
  288.    5 index string
  289.    /picstr exch def
  290.    translate scale
  291.    8 [1 0 0 1 0 0]
  292.    {currentfile  picstr readhexstring pop }
  293.    image
  294. } bdef
  295.  
  296. /do8bingreyimage {   % width height xscl yscl x0 y0 do8greyimage
  297.                      % same as above, but 8 bits per sample
  298.    5 index string
  299.    /picstr exch def
  300.    translate scale
  301.    8 [1 0 0 1 0 0]
  302.    {currentfile  picstr readstring pop }
  303.    image
  304. } bdef
  305.  
  306.  
  307. /docolorimage { % width height xscl yscl x0 y0 docolorimage
  308.    4 dict begin
  309.      5 index 1 add 2 idiv
  310.      dup /cstr exch string def
  311.      dup /ystr exch string def
  312.      dup /mstr exch string def
  313.      /kstr exch string def
  314.      translate scale
  315.      4 [1 0 0 1 0 0]
  316.      { currentfile cstr readhexstring pop }
  317.      { currentfile mstr readhexstring pop }
  318.      { currentfile ystr readhexstring pop }
  319.      { currentfile kstr readhexstring pop }
  320.      true 4 colorimage
  321.    end
  322. } bdef
  323.  
  324. /do8colorimage { % width height xscl yscl x0 y0 docolorimage
  325.    4 dict begin
  326.      5 index
  327.      dup /cstr exch string def
  328.      dup /ystr exch string def
  329.      dup /mstr exch string def
  330.      /kstr exch string def
  331.      translate scale
  332.      8 [1 0 0 1 0 0]
  333.      { currentfile cstr readhexstring pop }
  334.      { currentfile mstr readhexstring pop }
  335.      { currentfile ystr readhexstring pop }
  336.      { currentfile kstr readhexstring pop }
  337.      true 4 colorimage
  338.    end
  339. } bdef
  340.  
  341. /bwline {  % linewidth linejoin linecap grey dash 0 bwline
  342.    setdash g setlinecap setlinejoin setlinewidth
  343. } bdef
  344.  
  345. /colorline {  %linewidth linejoin linecap c m y k dash 0 colorline
  346.    setdash setcmykcolor setlinecap setlinejoin setlinewidth
  347. } bdef
  348.  
  349. /ellipsedict 2 dict def
  350. ellipsedict /mtrx matrix put
  351.  
  352. /ellipse {              % xr yr angle cx cy  ellipse
  353.    ellipsedict begin
  354.       /savematrix mtrx currentmatrix def
  355.       translate
  356.       rotate
  357.       scale
  358.       0 0 1 0 360 arc
  359.       savematrix setmatrix
  360.    end
  361. } bdef
  362.  
  363. %
  364. % patterned fill....
  365. %
  366. /setuserscreendict 22 dict def
  367. setuserscreendict begin
  368.    /tempctm matrix def
  369.    /temprot matrix def
  370.    /tempscale matrix def
  371.    /resmatrix matrix def
  372.    /findresolution {
  373.       72 0 resmatrix defaultmatrix dtransform
  374.       /yres exch def /xres exch def
  375.       xres dup mul yres dup mul add sqrt
  376.    } bdef
  377. end
  378.  
  379. /setuserscreen {
  380.    setuserscreendict begin
  381.       /spotfunction exch def
  382.       /screenangle exch def
  383.       /cellsize exch def
  384.       /mm tempctm currentmatrix def
  385.       /rmm screenangle temprot rotate def
  386.       /sm cellsize dup tempscale scale def
  387.       sm rmm mm mm concatmatrix mm concatmatrix pop
  388.       1 0 mm dtransform /y1 exch def /x1 exch def
  389.       /veclength x1 dup mul y1 dup mul add sqrt def
  390.       /frequency findresolution veclength div def
  391.       /newscreenangle y1 x1 atan def
  392.       mm 2 get mm 1 get mul mm 0 get mm 3 get mul sub 0 gt
  393.          { {neg} /spotfunction load concatprocs /spotfunction exch def
  394.          } if
  395.       frequency newscreenangle /spotfunction load setscreen
  396.    end
  397. } bdef
  398.  
  399. /setpatterndict  18 dict def
  400. setpatterndict begin
  401.    /bitison {
  402.       /ybit exch def /xbit exch def
  403.       /bytevalue bstring ybit bwidth mul xbit 8 idiv add get def
  404.       /mask 1 7 xbit 8 mod sub bitshift def
  405.       bytevalue mask and 0 ne
  406.    } bdef
  407. end
  408.  
  409. /bitpatternspotfunction {
  410.    setpatterndict begin
  411.       /y exch def /x exch def
  412.       /xindex x .999999 add 2 div bpside mul cvi def
  413.       /yindex y .999999 add 2 div bpside mul cvi def
  414.       xindex yindex bitison
  415.       { /onbits onbits 1 add def 1}
  416.       { /offbits offbits 1 add def 0}
  417.       ifelse
  418.    end
  419. } bdef
  420.  
  421. /setpattern {
  422.    setpatterndict begin
  423.       /cellsz exch def
  424.       /angle exch def
  425.       /bwidth exch def
  426.       /bpside exch def
  427.       /bstring exch def
  428.       /onbits 0 def /offbits 0 def
  429.       cellsz angle /bitpatternspotfunction load setuserscreen
  430.       {} settransfer
  431.       offbits offbits onbits add div g
  432.    end
  433. } bdef
  434.  
  435. %
  436.  
  437. /initpage {
  438.    gs
  439.    0 pageysize translate
  440.    0.96 -0.96 scale
  441. } bdef
  442.  
  443. /endpage {
  444.    gr
  445. } bdef
  446.  
  447. /getpagetype { % width ht orient getpagetype width ht orient pagetype
  448.    dup 0 eq {0}
  449.    {
  450.       3 copy pop
  451.       2 copy 709 le exch 499 le and
  452.       {pop pop 4} {
  453.          2 copy 842 le exch 596 le and
  454.          {pop pop 3} {
  455.             2 copy 792 le exch 612 le and
  456.             {pop pop 1} {
  457.                1008 le exch 612 le and
  458.                {2} {0} ifelse
  459.             } ifelse
  460.          } ifelse
  461.       } ifelse
  462.    } ifelse
  463. } bdef
  464.  
  465. /initcolorpage { % pitch1 angle1 ... pitch4 angle4 ysize width ht orient neg mirror manual #copies epsf----
  466.    commoninit
  467.    12 dict begin
  468.       /ka exch def /kf exch def
  469.       /ba exch def /bf exch def
  470.       /ga exch def /gf exch def
  471.       /ra exch def /rf exch def
  472.       currentcolorscreen
  473.       /kp exch def pop pop
  474.       /bp exch def pop pop
  475.       /gp exch def pop pop
  476.       /rp exch def pop pop
  477.       rf ra /rp load gf ga /gp load bf ba /bp load kf ka /kp load setcolorscreen
  478.    end
  479. } bdef
  480.  
  481. /initbwpage { % pitch angle ysize width ht orient neg mirror manual #copies epsf ----
  482.    commoninit
  483.    currentscreen 3 1 roll pop pop setscreen
  484. } bdef
  485.  
  486. /commoninit { % ysize width ht orient neg mirror manual #copies epsf ----
  487.    {pop pop pop pop pop pop pop}
  488.    {
  489.       /#copies exch def
  490.       statusdict begin
  491.          statusdict /manualfeed known
  492.          {/manualfeed exch def} {pop} ifelse
  493.          statusdict /mirrorprint known
  494.          {/mirrorprint exch def} {pop} ifelse
  495.          statusdict /negativeprint known
  496.          {/negativeprint exch def} {pop} ifelse
  497.          getpagetype
  498.          dup 0 ne {
  499.             dup 1 eq {
  500.                userdict /letter known
  501.                {letter} {pop 0} ifelse
  502.             } if
  503.             dup 2 eq {
  504.                userdict /legal known
  505.                {legal}  {pop 0} ifelse
  506.             } if
  507.             dup 3 eq {
  508.                userdict /a4 known
  509.                {a4} {pop 0} ifelse
  510.             } if
  511.             dup 4 eq {
  512.                userdict /b5 known
  513.                {b5} {pop 0} ifelse
  514.             } if
  515.          } if
  516.          0 eq statusdict /setpage known and
  517.          {setpage} {pop pop pop} ifelse
  518.       end
  519.    }
  520.    ifelse
  521.    /pageysize exch def
  522. } bdef
  523.  
  524. /crop {                 % x0 y0 x1 y1 l s crop
  525.     2 dict begin
  526.        /spc exch def /len exch def
  527.        n
  528.        0.25 setlinewidth 0 g
  529.        2 copy m2 0 spc rm 0 len rl 2 copy m2 spc 0 rm len 0 rl
  530.        4 2 roll 2 copy m2 0 spc neg rm 0 len neg rl 2 copy m2 spc neg 0 rm len neg 0 rl
  531.        4 1 roll exch
  532.        2 copy m2 0 spc rm 0 len rl m2 spc neg 0 rm len neg 0 rl
  533.        exch 2 copy m2 spc 0 rm len 0 rl m2 0 spc neg rm 0 len neg rl
  534.        s
  535.     end
  536. } bdef
  537.  
  538. /cross {   % xc yc len cross
  539.    1 dict begin
  540.       /len exch def
  541.       m2 0 len -2 div rm 0 len rl
  542.       len -2 div dup rm len 0 rl
  543.       s
  544.    end
  545. } bdef
  546.  
  547. /oneregister {   % xc yc len oneregister
  548.    0 g 0.25 setlinewidth
  549.    3 copy 3 copy 3 copy cross 2.5 div 0 360 arc stroke 4 div 0 360 arc fill
  550.    1 g 2 div cross
  551. } bdef
  552.  
  553. /drwcalibbar {   % x0 y0 wid len drwcalibbar
  554.    fourcol not component 1 eq or {
  555.       5 dict begin
  556.          n
  557.          /len exch def /width exch def /y0 exch def /x0 exch def
  558.          /increment width 10 div def
  559.          increment len gt {
  560.             /increment len def
  561.          } if
  562.          x0 y0 m2
  563.          0.0 0.1 1.0 {
  564.             g
  565.             len neg 0 rl 0 increment rl len 0 rl currentpoint fill m2
  566.          } for
  567.       end
  568.    }
  569.    {
  570.       pop pop pop pop
  571.    } ifelse
  572. } bdef
  573.  
  574. /drwpatch {              % k y m c len incr drwpatch
  575.    3 dict begin
  576.       /incr exch def /len exch def
  577.       component 1 eq {pop pop pop /grayval exch def}{
  578.          component 2 eq {pop pop /grayval exch def pop}{
  579.             component 3 eq {pop /grayval exch def pop pop}{
  580.                component 4 eq {/grayval exch def pop pop pop}{
  581.                   /grayval -1 def pop pop pop pop
  582.                }ifelse
  583.             }ifelse
  584.          }ifelse
  585.       } ifelse
  586.       grayval -1 ne {
  587.          grayval g
  588.          len neg 0 rl 0 incr neg rl len 0 rl currentpoint fill m2
  589.       } if
  590.    end
  591. } bdef
  592.  
  593. /drwcolcalib {   % gr1 gr2 x0 y0 wid len drwcolcalib
  594.    7 dict begin
  595.       n
  596.       /len exch def /width exch def /y0 exch def /x0 exch def
  597.       /gr2 exch def /gr1 exch def
  598.       /increment width 10 div def
  599.       increment len gt {
  600.          /increment len def
  601.       } if
  602.       x0 y0 m2
  603.       gr1 1.0 1.0 1.0 len increment drwpatch   % K
  604.       1.0 gr1 gr1 gr1 len increment drwpatch   % CMY
  605.       1.0 gr2 1.0 gr2 len increment drwpatch   % CY
  606.       1.0 1.0 1.0 gr2 len increment drwpatch   % C
  607.       1.0 1.0 gr2 gr2 len increment drwpatch   % CM
  608.       1.0 1.0 gr2 1.0 len increment drwpatch   % M
  609.       1.0 gr2 gr2 1.0 len increment drwpatch   % MY
  610.       1.0 gr2 1.0 1.0 len increment drwpatch   % Y
  611.    end
  612. } bdef
  613.  
  614. /register {             % x0 y0 x1 y1 l s register
  615.     6 dict begin
  616.        n
  617.        /spc exch def /len exch def
  618.        /y1 exch def /x1 exch def /y0 exch def /x0 exch def
  619.        x1 x0 add 2 div y0 spc sub len 2 div sub len oneregister
  620.        x1 x0 add 2 div y1 spc len 2 div add add len oneregister
  621.        x0 spc sub len 2 div sub y1 y0 add 2 div len oneregister
  622.        x1 spc len 2 div add add y1 y0 add 2 div len oneregister
  623.        x0 spc sub
  624.        len 2 div y0 add
  625.        y1 y0 sub 2 div len sub len 2 div sub
  626.        len drwcalibbar
  627.        0.5 0.2 x0 spc sub
  628.        y1 len 2 div sub
  629.        y1 y0 sub 2 div len sub len 2 div sub
  630.        len drwcolcalib
  631.        0.0 0.0 x1 spc add len add
  632.        y1 len 2 div sub
  633.        y1 y0 sub 2 div len sub len 2 div sub
  634.        len drwcolcalib
  635.     end
  636. } bdef
  637.  
  638. /findid {
  639.    /uniqueid 0 def
  640.    FontDirectory
  641.    {
  642.       exch pop
  643.       dup /UniqueID known
  644.       {
  645.          /UniqueID get dup uniqueid gt
  646.          {/uniqueid exch def}
  647.          {pop}
  648.          ifelse
  649.       }
  650.       {pop}
  651.       ifelse
  652.    }
  653.    forall
  654.    /uniqueid uniqueid 1 add def
  655. } bdef
  656.  
  657. /FillChar {
  658.    /strng exch def
  659.    /ptrn exch def
  660.    gs strng false charpath ptrn 8 1 0 75 300 32 div div setpattern eofill gr
  661. }bdef
  662.  
  663. /shadow {
  664.    /dely exch def
  665.    /delx exch def
  666.    /str exch def
  667.    currentpoint 2 copy exch delx add exch dely add
  668.    moveto str show moveto
  669. } bdef
  670.  
  671. /MakeNarrow {    % basename newname MakeNarrow
  672.    findid
  673.    /newname exch def
  674.    /basename exch def
  675.    /basefontdict basename findfont def
  676.    /newfont basefontdict maxlength dict def
  677.    basefontdict
  678.    {exch dup /FID ne
  679.       {exch newfont 3 1 roll put}
  680.       {pop pop}
  681.       ifelse
  682.    }
  683.    forall
  684.    newfont /FontName newname put
  685.    newfont /FontMatrix basefontdict
  686.    /FontMatrix get [0.82 0 0 1 0 0 ]
  687.       [0 0 0 0 0 0] concatmatrix put
  688.    newfont /UniqueID known
  689.    { newfont /UniqueID uniqueid put}
  690.    if
  691.    newname newfont definefont pop
  692. } def
  693.  
  694. /Helvetica /Helvetica-Narrow MakeNarrow
  695. /Helvetica-Bold /Helvetica-Narrow-Bold MakeNarrow
  696. /Helvetica-Oblique /Helvetica-Narrow-Oblique MakeNarrow
  697. /Helvetica-BoldOblique /Helvetica-Narrow-BoldOblique MakeNarrow
  698.  
  699. %====================%
  700.  
  701. %%%% Gradient Fill operators: %%%%%%
  702.  
  703. /defhexstr {   % length /strvar defhexstr -> length
  704.    currentfile 2 index string readhexstring pop def
  705. } bind def
  706.  
  707. /getgraystr {  % length getgraystr -> length + /gray
  708.    /gray defhexstr
  709. } bind def
  710.  
  711. /getcmykstr {  % length getcmykstr -> length + /cstr+/mstr+/ystr+/kstr
  712.    /cstr defhexstr
  713.    /mstr defhexstr
  714.    /ystr defhexstr
  715.    /kstr defhexstr
  716. } bind def
  717.  
  718. /setgraygrad { % index setgraygrad
  719.    gray exch get 255.0 div g
  720. } bind def
  721.  
  722. /setcmykgrad { % index setcmykgrad -> index
  723.    dup     cstr exch get 255.0 div  % -> index cval
  724.    1 index mstr exch get 255.0 div  % -> index cval mval
  725.    2 index ystr exch get 255.0 div  % -> index cval mval yval
  726.    kstr 5 -1 roll    get 255.0 div  % -> cval mval yval kval
  727.    setcmykcolor
  728. } bind def
  729.  
  730. /radgrad {     % cx cy radius /setcol steps /getstr radgrad
  731.    7 dict begin
  732.       gsave eoclip
  733.       cvx exec          % read necessary strings with color information
  734.       /steps exch def
  735.       /setcol exch def
  736.       dup steps div /rstep exch def  % -> cx cy radius
  737.       0 1 steps 1 sub {
  738.          setcol
  739.          newpath 3 copy 0 360 arc eofill
  740.          rstep sub
  741.       } for
  742.       pop pop pop
  743.       grestore
  744.    end
  745. } bind def
  746.  
  747. /linXgrad {    % x1 y1 x2 y2 wd /setcol steps /getstr linXgrad
  748.    7 dict begin
  749.       gsave eoclip
  750.       cvx exec          % read necessary strings with color information
  751.       /steps exch def
  752.       /setcol exch def
  753.       steps div /dx exch def        % -> x1 y1 x2 y2
  754.       0 1 steps 1 sub {
  755.          setcol
  756.          newpath
  757.          3 index dx add 3 index m2    % -> x1 y1 x2 y2 {x1+dx y1}
  758.          1 index dx add 1 index l2    % -> x1 y1 x2 y2 {x2+dx y2}
  759.          4 copy l2 l2             % -> x1 y1 x2 y2 {x1 y1} {x2 y2}
  760.          closepath eofill
  761.          dx 0 translate
  762.       } for
  763.       pop pop pop pop
  764.       grestore
  765.    end
  766. } bind def
  767.  
  768. /linYgrad {    % x1 y1 x2 y2 ht /setcol steps /getstr linYgrad
  769.    7 dict begin
  770.       gsave eoclip
  771.       cvx exec          % read necessary strings with color information
  772.       /steps exch def
  773.       /setcol exch def
  774.       steps div neg /dy exch def    % -> x1 y1 x2 y2
  775.       0 1 steps 1 sub {
  776.          setcol
  777.          newpath
  778.          3 index 3 index dy add m2    % -> x1 y1 x2 y2 {x1 y1+dy}
  779.          2 copy dy add l2             % -> x1 y1 x2 y2 {x2 y2+dy}
  780.          4 copy l2 l2             % -> x1 y1 x2 y2 {x1 y1} {x2 y2}
  781.          closepath eofill
  782.          0 dy translate
  783.       } for
  784.       pop pop pop pop
  785.       grestore
  786.    end
  787. } bind def
  788.  
  789. %================================================================%
  790.  
  791.  
  792.